#include <stdio.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>


int main()
{
    pid_t id = fork();

    if (id == 0)
    {
        // child
        int cnt = 5;
        while (cnt)
        {
            printf("I am a child, pid: %d, ppid: %d\n", getpid(), getppid());
            cnt--;
            sleep(1);
        }
        exit(100);
    }

    // father
    sleep(10);
    // pid_t rid = wait(NULL);
    // printf("父进程回收成功, rid: %d\n", rid);
    
    int status = 0;
    pid_t rid = waitpid(id, &status, 0);
    if (rid > 0)
        printf("父进程wait子进程成功, rid:%d, status: %d\n", rid, status);

    sleep(15);
    return 0;
}



//Print()
//{
//
//}
//
//int main()
//{
//    //FILE* fp = fopen("file.txt", "r");
//    //if (fp == NULL)
//    //{
//    //    exit(1);
//    //}
//    //while (1)
//    //{
//    //    printf("this is an endless loop\n");
//    //}
//
//    //return errno;
//}


//int main()
//{
//    FILE* fp = fopen("file.txt", "r");
//    printf("%d: %s\n", errno, strerror(errno));
//    // errno -- 错误码
//
//    return 0;
//}
